package com.gujiangbo.threadpool;

/**
 * 自定义线程池
 */
public interface ThreadPool {

    /**
     * 提交任务到线程池
     *
     * @param runnable
     */
    void execute(Runnable runnable);

    /**
     * 关闭线程池
     */
    void shutdown();

    /**
     * 获取线程池初始容量大小
     */
    int getInitSize();

    /**
     * 获取线程池最大的线程数量
     *
     * @return
     */
    int getMaxSize();

    /**
     * 获取线程池中核心线程数量
     *
     * @return
     */
    int getCoreSize();

    /**
     * 获取队列大小
     *
     * @return
     */
    int getQueueSize();

    /**
     * 获取线程池中活跃的线程数量
     *
     * @return
     */
    int getActiveCount();

    /**
     * 查看线程池是否已经被shutdown
     *
     * @return
     */
    boolean isShutdown();
}
